The present invention relates to a method of estimating load inertia for a motor, more specifically a method of estimating load inertia for a servo motor for a robot or a feed shaft of a machine tool.
FIG. 3 is a schematic diagram of a conventional motor speed controller which automatically tunes the motor speed using an estimated load inertia. The controller detects rotation of a motor M with an encoder 3. A speed calculator 4 calculates a motor speed based on an output from the encoder 3. An acceleration speed calculator 5 calculates an acceleration speed based on the calculated motor speed and outputs an acceleration feedback signal. A speed controller 1 outputs a torque command so that a difference between a speed feedback signal outputted from the speed calculator 4 and a speed command signal may be zero (0). A torque controller 2 drives the motor M in accordance with the torque command. An inertia estimator 6 which estimates load inertia of the motor M receives the acceleration feedback signal outputted from the acceleration speed calculator 5 and the torque command signal outputted from the speed controller 1, and estimates the load inertia based on these signals. Then, the inertia estimator 6 outputs an estimated inertia to a gain regulator 7. The gain regulator 7 regulates the gain of the speed controller 1 to an appropriate value, based on the estimated inertia.
FIG. 4 is a schematic diagram of a conventional inertia estimator used in the speed controller of FIG. 3. In actuality, the estimator is configured by software. The method of estimating inertia implemented in the inertia estimator shown in FIG. 3 is described in detail in a journal of the Institute of Electrical Engineers of Japan, titled “High-performance Control of Servomotor using Low Precision Shaft Encoder—Instantaneous Speed Observer and Identification of the Inertia Moment” (vol. 114-D, No. 4, '94, pp. 424-431). According to the technology described in this journal, a moment of inertia, or simply an inertia, is identified as follows: an estimated inertia gain Kn is determined by recursive least squares method based on a torque command from the speed controller and an acceleration feedback signal. According to the configuration shown in FIG. 4, an acceleration feedback difference Δan is calculated between a value for an acceleration feedback signal which has passed through a low-pass filter LPF and a value for a previous acceleration feedback signal which has passed through the low-pass filter LPF. A previous estimated inertia Jn−1 is multiplied by the acceleration feedback difference Δan to obtain a value of ΔanJn−1, from which a torque feedback difference ΔTn is obtained. Next, a torque command difference ΔTcn is calculated between a value for a torque command signal which has passed through another low-pass filter LPF and a value for a previous torque command signal which has passed through that low-pass filter LPF. Then, an error en is calculated between the torque feedback difference ΔTn and the torque command difference ΔTcn, as expressed in en=ΔTcn−ΔTn. Finally, the error en is multiplied by the estimated inertia gain Kn to obtain a value of enKn, and the value of enKn is added to a previous estimated inertia value Jn−1 to obtain an estimated inertia Jn. Inertia estimation is recursively implemented in a predetermined sampling interval while the motor is being controlled. The inertia Jn is estimated so that the error en may be smaller. The estimated inertia gain Kn is calculated in Kn=(Pn−1Δan)/(λ+Pn−1Δan2), where Pn is a correlation of coefficient error as expressed in Pn=Pn−1/(λ+Pn−1Δan2) and λ is a forgetting coefficient or factor.
In auto-tuning, a gain of the speed controller 1 is determined based on the estimated inertia Jn so that the motor may operate stably even if the inertia fluctuates. When positional control is implemented in addition to the speed control, a gain of the position controller may be determined based on the estimated inertia.
When the estimated inertia gain Kn is calculated by recursive least squares method, disturbances such as attraction of gravity and constant load have smaller effect on the calculation. According to the configuration shown in FIG. 4, since an error en is detected using differences in torque command signals and acceleration feedback signals, an inertia may be estimated using a high gain Kn at the time that acceleration is started or the acceleration speed is changed or acceleration is completed, or at the time that deceleration is started or completed. However, when a cogging torque of the motor is large or vibration is caused in the mechanical system of the load, this vibration may also appear in the acceleration feedback signal. If the cycle in which such vibration appears is close to the sampling frequency of the inertia estimator, the estimating portion of the inertia estimator is affected by the vibration, thereby estimating an inertia at a different value from the one which should be calculated under normal circumstances.